package com.xbongbong.paas.pojo.dto;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.helper.PageHelper;
import com.xbongbong.paas.toolbox.util.StringUtil;
import com.xbongbong.paas.field.LimitChooseRangePoJo;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * @author kaka
 */
@Getter
@Setter
@ToString
public class UserListDTO extends BaseDTO {

    private static final long serialVersionUID = -7633160059266293239L;

    private static final Integer DEFAULT_USER_PAGE_SIZE = PageHelper.PAGE_SIZE;

    /**
     * 用户名模糊查询
     */
    private String nameLike;

    /**
     * 部门id查询
     */
    private Long departmentId;

    /**
     * 通过角色id查询
     */
    private Integer roleId;

    /**
     * 分页当前页
     */
    private Integer page;

    /**
     * 分页每页记录数
     */
    private Integer pageSize;

    /**
     * 可选范围
     */
    private LimitChooseRangePoJo limitChooseRange;

    private List<Object> userIdIn;

    /**
     * 用户名模糊查询
     */
    private String userIdLike;

    /**
     * del查询忽略
     */
    private Integer delIgnore;
    /**
     * 是否获取全部数据，1 获取全部数据
     */
    private Integer allFlag;

    private String attr;

    private Long formId;

    private Integer saasMark;

    private Integer BusinessType;

    private Long dataId;
    /**
     * 成员部门自定义可选范围关联动态值字段数据
     * sunshaoxiang
     **/
    private JSONObject optionalRangeDataList;

    public UserListDTO() {
        page = 1;
        pageSize = DEFAULT_USER_PAGE_SIZE;
    }

    /**
     * 参数接收完后的加工处理，
     * 比如nameLike的去除前后空格
     */
    public void postProcess() {
        if (StringUtil.isEmpty(this.nameLike)) {
            this.nameLike = null;
        } else {
            this.nameLike = StringUtil.trim(this.nameLike);
        }
    }
}
